home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 23 / AACD 23.iso / AACD / Online / opennap / NEWS < prev    next >
Text File  |  2001-06-08  |  20KB  |  496 lines

  1. Open Souce Napster Server
  2. -------------------------
  3. This file highlights the major user visible changes between versions.  For a
  4. detailed description of all changes, please see the ChangeLog file.
  5.  
  6. [opennap 0.41]
  7.  
  8. Improved Napigator support.  Added new variables report_name, report_ip, and
  9. report_port which set the information reported to Napigator.  These default
  10. from the other configuration variables and only need to be set if OpenNap
  11. doesn't guess the correct values.
  12.  
  13. [opennap 0.40]
  14.  
  15. Added a `block' configuration file which contains a list of regular
  16. expressions.  Any file a client attempts to share that matches one of the
  17. regexps will be discarded and unavailable for download via the server.  See
  18. sample.block for a useful list to begin with.
  19.  
  20. Added `allow_share' boolean configuration options which controls whether or
  21. not clients are allowed to share files.  Requests to share files are
  22. silently ignored.
  23.  
  24. Added `min_read' configuration variable to allow a low-watermark log
  25. message when less than this many bytes are read from a server link.  Useful
  26. for detecting slow servers.
  27.  
  28. Added support for directly reporting server stats to a Napigator-style
  29. server.
  30.  
  31. [opennap 0.39]
  32.  
  33. The metaserver can now read the servers list from a file as well as from the
  34. command line.
  35.  
  36. Added `server_chunk' config variable to control the minimum packet size to
  37. be sent between servers (Default: 0 = no minimum).
  38.  
  39. Added `ghost_kill' boolean to allow disabling the ghost kill feature.
  40.  
  41. Added `auto_link' boolean to make the server automatically attempt to link
  42. to all servers upon startup.
  43.  
  44. Added support for ircd-style i:lines (allowed ips), e:lines (exempt ips),
  45. d:lines (drop without any notification)
  46.  
  47. Added `login_interval' and `register_interval' variables to control how fast
  48. a client from the same ip may log in or register a nickname.
  49.  
  50. Support for Napster BETA 8 and BETA 9.
  51.  
  52. Added `remote_browse' boolean variable to disable remote browsing.
  53.  
  54. Added support for histogram of number and bytecount for each message type
  55. received.
  56.  
  57. Disabled the 10301 (`new' browse method) [Note: a few clients depended on
  58. this, but should have been updated to use BETA8+ method of direct client to
  59. client browsing.]
  60.  
  61. Added `max_searches' variable to limit the number of pending searches a
  62. client can have.
  63.  
  64. Added usermode -msg to disable private messages.
  65.  
  66. Added usermode -whois to disable whois notifications for mod+ users.
  67.  
  68. [opennap 0.38]
  69.  
  70. ***NOTE*** Because of a change in the server quit messages, if 0.38 is used
  71. as the hub it will likely crash leaf servers which are not also 0.38.  It
  72. should be fine to use 0.38 as a leaf server with 0.37 as the hub server
  73. until all other servers are upgraded.
  74.  
  75. Added new command `who was' (10121) to allow a mod+ to see whois-like info
  76. about a user that has recently logged off.  Information about clients is
  77. cached for `who_was_time' seconds before being purged.  By default, this is 5
  78. minutes.
  79.  
  80. `max_clones' now works globally instead of per-server.
  81.  
  82. added `max_searches' config variable which controls how many pending
  83. searches a client may queue up (default: 3)
  84.  
  85. added --disable-kqueue to turn off kqueue() support under FreeBSD
  86.  
  87. added new mass kill by ip command (10122).
  88.  
  89. channel prefixed with & are now local to a single server, even when linked.
  90.  
  91. added --enable-log-channel which creates a channel &LOG in which the console
  92. output is displayed.
  93.  
  94. added usermode -msg to allow users to turn off private messages.
  95.  
  96. usermode functionality is now available to non-priviledged users via
  97. /msg nickserv.
  98.  
  99. added boolean config variable `irc_channels' which controls whether or not
  100. opennap requires channel names to be prefixed with # or &.
  101.  
  102. [opennap 0.37]
  103.  
  104. The -c option now specifies the *directory* to read the file `config' from,
  105. not the full path to the config file.  The `config_dir' variable is no
  106. longer used, you just specify it at startup if it's different from the
  107. compiled default (typically /usr/local/share/opennap).  Why?  For security
  108. concerns you don't want someone who gains admin+ access on the server to be
  109. able to change this and force the server to read/write files in a different
  110. part of the system.
  111.  
  112. Removed `uid' and `gid' configuration variables.  These are now compiled in
  113. defaults. They can be configured with --with-uid=UID and --with-gid=GID.  As
  114. with `config_dir', we don't want to reveal sensitive system information to
  115. outside users.  Also, if opennap was installed setuid, a user could make
  116. opennap run as any user they wish by using these options.
  117.  
  118. Added ability to run opennap in a chroot jail.  Enable with --enable-chroot
  119. configure option.  When run as root, opennap will chroot to
  120. /usr/local/share/opennap (or the configured directory) before dropping
  121. privilege.
  122.  
  123. `server_password' no longer used.  All passwords should be put in the
  124. `servers' file.  You are no longer required to use the same password for all
  125. servers.
  126.  
  127. added --enable-routing configurion option to compile a routing-only (hub)
  128. version of the server.  in routing-only mode, only admins+ are allowed to
  129. log in and all file-sharing commands are disabled (except for those required
  130. to pass the remote searching among servers).
  131.  
  132. Added two additional fields to the `servers' file.  First, the TCP port the
  133. remote server is listening on MUST now be specified in the file.  If it is
  134. missing, opennap will assume port 8888.  This means the server connect
  135. command now ignores the port if you specify it in the client.  The next
  136. field is an optional alias for the server which will be used instead of the
  137. DNS name.  This is useful either in the case where you have no reverse DNS
  138. setup or you wish to keep the real name of the server hidden from users.
  139.  
  140. Cloak status is no longer automatically restored when a user logs in.  This
  141. was the source of many desyncs.  If you want to be cloaked you have to
  142. explicitly request it each time you log in.
  143.  
  144. Added support for running a `hidden' server.  This allows you to link
  145. servers which do not have their dns name or ip address displayed to users.
  146. This is only good for routing-only servers (hubs), or linking in OpenServ
  147. servers.  To alias a server, you need to add
  148.     server_alias <string>
  149. to the server's config file, so that it will identify itself as its alias.
  150. Then, on each server it will be linked to, an extra field specifying the
  151. alias should be used.
  152.  
  153. Added support for poll() on systems with this syscall.
  154.  
  155. Added automatic lag detection.  Opennap will periodically ping all peer
  156. servers are report the stats to all mods+ logged into the server.
  157.  
  158. [opennap 0.36]
  159.  
  160. `*', `?', `.' and `!' are no longer valid chars in nicks.  This is needed to
  161. support the new expanded ban syntax
  162.  
  163. Bans are now of the form <nick!ip>.  `*' matches 0 or more chars, `?'
  164. matches any single char.
  165.  
  166. Channel names must now begin with # or &.  The join command will
  167. automatically prepend a # to channel names if missing.
  168.  
  169. Removed the USER_IP server numeric.  This version of opennap will not
  170. interoperate with other opennap servers < 0.33, but will use less
  171. bandwidth for server->server links
  172.  
  173. Added new config variable `search_timeout' which controls how long pending
  174. searches will be considered valid before timing out.
  175.  
  176. Added new config variable `stats_port' to make the port 8889 stats
  177. configurable since napigator now supports alternate ports.
  178.  
  179. Added support for `tcp_wrappers' to control access to the server.
  180.  
  181. Added opennap.init sample file for SysV-style init scripts
  182. [Geoffrey Lee <snailtalk@linux-mandrake.com>]
  183.  
  184. Programs are now installed in /usr/local/sbin by default.
  185.  
  186. If `stats_port' is set to -1 in the config file, opennap will not listen
  187. for stats reporting (by default it listens on port 8889).
  188.  
  189. Search token filtering is now configurable instead of hard-coded.  opennap
  190. will read the file `filter' in the configuration directory for a list of
  191. words (one per line) that should be skipped when indexing.  A
  192. `sample.filter' file is now included with the distribution.  Generally, if
  193. opennap gives a log message such as "bin for ... exceeds 5000 entries",
  194. you probably want to include that word in the filter file since searches on
  195. that token don't limit the search very much and won't get used (opennap uses
  196. the bin with the fewest entries to make the fine grain comparisons, so
  197. something with 5000+ entries won't likely be used).
  198.  
  199. Added new config var `eject_when_full' to have opennap kill nonsharing
  200. clients when the server reaches max_connections.
  201.  
  202. Added server-side flood protection.  Controlled by two new config variables:
  203.     flood_commands    number of commands that can be issued
  204.     flood_time    number of seconds
  205. If more than `flood_commands' message from a client are received in
  206. `flood_time' seconds, the server will throttle the rate at which it reads
  207. commands from the client, and notify the mods+ of the flooding (controlled
  208. by usermode FLOOD).  Setting `flood_commands' to 0 [default] turns off flood
  209. control.  NOTE: `flood_time' should be an integral multiple of
  210. `flood_commands' or else it will not do what you expect.  _DO_ _NOT_ set
  211. `flood_time' to 0!!! or risk 100% cpu usage.  You've been warned.
  212.  
  213. [opennap 0.35]
  214.  
  215. added `max_clones' configuration variable to control how many clients may
  216. log into the server from the same ip address.
  217.  
  218. [opennap 0.34]
  219.  
  220. added channel mode command (/msg chanserv mode <channel> [mode]) where
  221. mode is one or more of
  222.     +MODERATED    only mods, ops and voiced users can talk
  223.     +INVITE        non-ops/mods must be invited to /join
  224.     +TOPIC        any user in the channel can change the topic
  225.     +PRIVATE    channel does not show up in channel list
  226.  
  227. added channel voice command: /msg chanserv voice <channel> [user [user ...]]
  228. allows a user to talk in a moderated channel
  229.  
  230. added channel muzzle command: /msg chanserv muzzle <channel> <user> ["reason"]
  231. muzzles a user in the specified channel only
  232.  
  233. added channel invite command: /msg chanserv invite <channel> <user>
  234. to allow a user to join a +invite channel
  235.  
  236. added channel wallop command: /msg chanserv wallop <channel> <text>
  237. to send a message to all ops/mods+ in the specified channel
  238.  
  239. notifications about changes in channels are now only sent to the ops/mods+ in
  240. that channel rather than to all mods+
  241.  
  242. removed +TOPIC and +CHANNEL user modes
  243.  
  244. max nickname length set to 19 to avoid a bug in the windows napster client
  245.  
  246. [opennap 0.32]
  247.  
  248. fixes bug in channel_op() which allowed any user to gain channel operator
  249. status on any channel
  250.  
  251. [opennap 0.31]
  252.  
  253. added new flags 'z' and 'c' to global user list to display all muzzled and
  254. cloaked users, respetively.
  255.  
  256. the server config command will now dump all variables if none is specified
  257.  
  258. added the number of registered user to the stats dump
  259.  
  260. motd is now stored in memory upon startup to avoid reading it from disk
  261. every time a login occurs
  262.  
  263. default nick expire is now 31 days
  264.  
  265. added timestamps for channel settins so that when servers link it is
  266. unambiguous what it should be set to if there are differences.
  267.  
  268. bans file is now dumped periodically to save state
  269.  
  270. added ghost feature where the server will automatically kill a previous
  271. login if the second login comes from the same ip for the same nickname.
  272.  
  273. reduced memory usage for bitrate/samplerate to 1 byte per file by using an
  274. index of allowed values in the MPEG-3 standard.
  275.  
  276. [opennap 0.30]
  277.  
  278. added new config var max_topic to limit the max length of a channel topic
  279.  
  280. added new config var max_reason to limit the max length of a
  281. kick/kill/muzzle reason
  282.  
  283. added new config var max_hotlist to limit the max number of users allowed on
  284. a user's hotlist
  285.  
  286. added new config var max_ignore to limit the max number of users allowed on
  287. a user's ignore list
  288.  
  289. added new config var max_client_string to limit the max length of the client
  290. version string
  291.  
  292. [opennap 0.29]
  293.  
  294. fixes buffer overflow in server output to clients
  295.  
  296. [opennap 0.28]
  297.  
  298. zlib is now required to compile opennap.  previous versions will not
  299. link with 0.28 at compression_level 0 because of this change.
  300.  
  301. added channel operator support.  channel operators have the ability to issue
  302. admin commands relating to a specific channel (kick, ban, topic, etc).
  303. channel operators can be bootstrapped in the `channels' file--simply list
  304. the nicknames separated by a space after the topic.
  305.  
  306. added `ChanServ' virtual user to allow channel operators to access admin
  307. commands if they are not implemented in the client they are using.
  308. (/msg chanserv help)
  309.  
  310. added help to OperServ (/msg operserv help)
  311.  
  312. the channels file is now rewritten in a similar fashion to the users file to
  313. store the current state of the settings (including channel ops)
  314.  
  315. opennap will now always return the string 000000000000000000000000000000
  316. for the hash value when RESUME is disabled.  opennap conserves memory by not
  317. storing the real value in this case.
  318.  
  319. [opennap 0.27]
  320.  
  321. changed `server_port' variable to `server_ports'.  it can now take a space
  322. separated list of ports for the server to listen on for incoming
  323. connections.
  324.  
  325. added global user list command (831).  the arguments to the command are
  326.     [server [flags]]
  327. where `server' is the particular server to search (can be `*' for all) and
  328. `flags' is one of `l', `e', `a', `m' (leech, elite, admin, mod,
  329. respectively).
  330.  
  331. Server linking now works correctly under Win32 platforms.
  332.  
  333. Added logchk and napchk BASH utility scripts from WoLF
  334.  
  335. Added -b command line argument to run OpenNap in the background on Unix
  336. platforms.
  337.  
  338. OpenNap will now write its process id in the `pid' file in the OpenNap
  339. configuration directory.
  340.  
  341. Server support for resume is now disabled by default (can be renabled with
  342. configure --enable-resume)
  343.  
  344. The character `$' is no longer allowed in nicknames since many clients use
  345. this to denote a variable.
  346.  
  347. [opennap 0.26]
  348.  
  349. added `lock_memory' boolean configuration option to prevent the process from
  350. being swapped when enabled
  351.  
  352. added `registered_only' boolean configuration variable to only allow
  353. registered users to log in
  354.  
  355. added `auto_register' boolean configuration option to force user account
  356. registration upon login
  357.  
  358. added support for the new file sharing commands in Napster 2.0 Beta 6
  359.  
  360. the `servers' file format was changed to add an extra field for a local
  361. password to use instead of `server_password' to enable different password
  362. pairs to be used for each server link
  363.  
  364. added support for server-side ignore commands in Napster 2.0 beta 6
  365.  
  366. added support for cloaking by privileged users
  367.  
  368. muzzle state is now stored in the user db and restored when the user logs in
  369. the next time
  370.  
  371. added support for server ping client command in Napster 2.0 beta 6
  372.  
  373. added support for channel ban client commands in Napster 2.0 beta 6
  374.  
  375. added support for creating `rollover' channels when predefined channels
  376. reach their limit on the number of users
  377.  
  378. [opennap 0.25]
  379.  
  380. added a new configuration variable `config_dir' which controls the location
  381. where opennap looks for its config files (users, servers, bans, motd,
  382. channels), and removed the file-specific configuration variables:
  383. user_db_path, server_db_path and motd_path.
  384.  
  385. added persistent channel configuration file: channels.  This file allows
  386. creation of channels which always exist even if no users are in them, along
  387. with the default level and limit.  See sample.channels for an example.
  388.  
  389. added the OperServ `usermode' command to allow privileged users (Moderator
  390. or higher) to selectively turn off server notifications about things such as
  391. kills, muzzles and bans.  See the README file for details.
  392.  
  393. [opennap 0.24]
  394.  
  395. md5 passwords are now used to store user passwords on disk.  A new utility
  396. called 'mkpass' is now used to generate a md5 password from plaintext
  397. password when first setting up the server.  See the README file for details.
  398.  
  399. Added support for the clear channel (820) user command which will remove all
  400. users of a lesser user level than the usr who issued the command.
  401.  
  402. When compiled with debugging support, sending SIGUSR1 to the opennap process
  403. will cause it to dump the table of allocated memory.
  404.  
  405. Added virtual user "OperServ" which accepts commands via /msg.  This is
  406. intended to provide support for clients which have no built in support for
  407. the opennap extensions.  See the README file for a complete list of accepted
  408. commands.
  409.  
  410. Added channel limit command (826) to specify the maximum number of users
  411. allowed in a channel.
  412.  
  413. Added new channel list command (827/828) which shows additional information
  414. about the channels such as the mimium level required for entry, and the
  415. channel limit.
  416.  
  417. Added the nuke command to remove a registered user from the database.
  418.  
  419. The stats and links commands are now accessible to unprivileged users.
  420.  
  421. Bans are now saved and reloaded (default: /usr/local/share/opennap/bans)
  422. on startup.
  423.  
  424. [opennap 0.23]
  425.  
  426. Server was fixed to compile without zlib for use as a standalone server.
  427. This makes it much easier to compile under Win32 platforms.
  428.  
  429. Server now crops public and emote messages longer than 128 to prevent
  430. exploitation of the DoS attack against the Windows Napster client.
  431.  
  432. opennap should now consume considerably less CPU time.  It now attempts to
  433. accept() as many incoming connections as possible per iteration of the main
  434. event loop.
  435.  
  436. The user database is now read into memory for fast lookup.  It is dumped to
  437. disk every `user_db_interval' seconds (default: 1800)
  438.  
  439. opennap are now aware of all servers in the cluster that are linked.  The
  440. `server links' command was modified to present this information.
  441.  
  442. Added new administrative commands for registering a nick and changing a user's
  443. reported line speed.
  444.  
  445. opennap now prints bandwidth usage stats as part of its logging messages.
  446.  
  447. [opennap 0.22]
  448.  
  449. MySQL is no longer used in opennap.  The users and servers databaseses are
  450. now handled as a flat text files.  The location of these files is controlled
  451. by the new configuration variables `user_db_path' and `server_db_path'.  See
  452. the README file for more details.
  453.  
  454. OS/2 port by Brian Smith <dbsoft@technologist.com>.
  455.  
  456. Solaris port by jones@users.sourceforge.net.
  457.  
  458. [opennap 0.20]
  459.  
  460. opennap will now listen on port 8889 in addition to the client connection
  461. port.  When a connection is made to port 8889 it will display some
  462. information about the status of the server, similar the the stats command
  463. in the napster protocol.  This is intended to be usesful for clients to
  464. query various servers to see their stats without having to log into each
  465. one.
  466.  
  467. added max_nick_length configuration variable which controls the maximum
  468. length a nickname is allowed to be (default: 32).  It can be set to 0
  469. to indicate no maximum.  The protocol itself doesn't care how long nicks
  470. are, but this puts a cap for readability in clients.
  471.  
  472. added --with-fd-setsize configure option to allow select() based systems
  473. with a small default value (such as 256 under BSDI) to compile with a higher
  474. maximum for more connections.
  475.  
  476. added new configuration variable connection_hard_limit to specify the
  477. maximum number of connections that the process will ever be able to support
  478. (default: 1024).  Note that this is different from the max_connections
  479. variable which controls how many connections are allowed at the given
  480. moment.  The reason for this variable is that on some systems you are
  481. not allowed to increase the hard limit of file descriptors for a process
  482. unless you have root privileges.  If run as root, opennap consults
  483. connection_hard_limit to set the hard limit before dropping root privileges.
  484.  
  485. as described above, opennap can now be run as root when more file
  486. descriptors per process than default is required.  new variables `uid' and
  487. `gid' were added to specify the user and group to run as after changing
  488. the resouce limits.  By default, opennap will attempt to find the uid/gid
  489. for `nobody/nobody' and run as such.
  490.  
  491. opennap has been ported to Windows 2000 thanks to Damian Hodgkiss.
  492.  
  493. MySQL is no longer used to store the file database.  A custom memory based
  494. solution was used in order to speed up the searches.  This requires more
  495. memory, but the load is very low when searching.
  496.